【PHP/演習問題】インターフェース[1]

【PHP/演習問題】インターフェース[1]

問題

次の実行結果になるプログラムを作成してください。
なお、下記条件を満たすものとします。

  • 下記表のクラス・インターフェースを作成する
  • 実行結果になるように各クラスのインスタンスを使う
種類 名前 英記 継承元 インターフェース フィールド メソッド
インターフェース チケット情報 TicketInfo info()
抽象クラス チケットクラス
Ticket TicketInfo $price(料金)
具象クラス ライブチケット LiveTicket Ticket $place(場所) info()
→ 場所と料金を出力
具象クラス ライブ配信チケット LiveStreamingTicket Ticket $url(URL) info()
→ URLと料金を出力
===== ライブチケット =====
料金 : 8000円
場所 : ライブハウス
===== ライブ配信   =====
料金 : 3000円
URL : https://it-hack.net/live-streaming

解答例

<?php

interface TicketInfo {
    public function info();
}

abstract class Ticket implements TicketInfo {
    
    public $price;
    
}

class LiveTicket extends Ticket {
    
    public $place;
    
    public function info() {
        echo '料金 : '.$this->price."円\n";
        echo '場所 : '.$this->place."\n";
    }
    
}

class LiveStreamingTicket extends Ticket {
    
    public $url;
    
    public function info() {
        echo '料金 : '.$this->price."円\n";
        echo 'URL : '.$this->url."\n";
    }
    
}

echo "===== ライブチケット =====\n";
$live_ticket = new LiveTicket();
$live_ticket->price = 8000;
$live_ticket->place = 'ライブハウス';
$live_ticket->info();

echo "===== ライブ配信   =====\n";
$live_streaming_ticket = new LiveStreamingTicket();
$live_streaming_ticket->price = 3000;
$live_streaming_ticket->url = 'https://it-hack.net/live-streaming';
$live_streaming_ticket->info();

?>